package com.crazy.common.excel;
import org.apache.poi.ss.usermodel.Cell;
import org.apache.poi.ss.usermodel.CellStyle;
import org.apache.poi.ss.usermodel.Font;
import org.apache.poi.ss.usermodel.Row;
import org.apache.poi.ss.usermodel.Workbook;
/**
 * Apache POI操作Excel辅助类
 * @author zhangweiwei
 */
public class ExcelHelper {
	/**
	 * 创建单元格
	 * @param wb 工作薄
	 * @param row 行
	 * @param column 列,从0开始
	 * @param halign 水平对齐方式
	 * @param valign 垂直对齐方式
	 * @param cellValue 单元格内容
	 */
	public static void createCell(Workbook wb, Row row, Integer column,
			Short halign, Short valign, String cellValue) {
		Cell cell = row.createCell(column);
		cell.setCellValue(cellValue);
		CellStyle cellStyle = wb.createCellStyle();
		cellStyle.setAlignment(halign);
		cellStyle.setVerticalAlignment(valign);
		cellStyle.setWrapText(true);
		cell.setCellStyle(cellStyle);
	}
	/**
	 * 创建单元格
	 * @param wb 工作薄
	 * @param row 行
	 * @param column 列,从0开始
	 * @param cellValue 单元格内容
	 */
	public static void createCell(Workbook wb, Row row, Integer column,
			String cellValue) {
		Cell cell = row.createCell(column);
		cell.setCellValue(cellValue);
		CellStyle cellStyle = wb.createCellStyle();
		cellStyle.setAlignment(CellStyle.ALIGN_CENTER);
		cellStyle.setVerticalAlignment(CellStyle.VERTICAL_CENTER);
		cellStyle.setWrapText(true);
		cell.setCellStyle(cellStyle);
	}
	/**
	 * 创建单元格
	 * @param wb 工作薄
	 * @param row 行
	 * @param values 单元格内容
	 */
	public static void createCell(Workbook wb, Row row, String[] values) {
		for (int i = 0; i < values.length; i++) {
			createCell(wb, row, i, values[i]);
		}
	}
	/**
	 * 创建表格标题
	 * @param wb 工作薄
	 * @param row 行
	 * @param title 表格标题
	 * @param size 字体大小
	 */
	public static void createCaption(Workbook wb, Row row, String title,
			int size) {
		Cell cell = row.createCell(0);
		cell.setCellValue(title);
		CellStyle style = wb.createCellStyle();
		style.setAlignment(CellStyle.ALIGN_CENTER);
		Font font = wb.createFont();
		font.setFontHeightInPoints((short) size);
		style.setFont(font);
		cell.setCellStyle(style);
	}
}
